/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package SYSGEST.br.fornecedor;

import sysgest.conexao.HibernateUtil;
import SYSGEST.br.Funcionarios.Funcionario;
import java.util.List;
import javassist.bytecode.stackmap.BasicBlock;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import sun.nio.cs.ext.MacThai;

/**
 *
 * @author AELSON
 */
public class FornecedorDAO {

    private Session sessao;
    private Transaction transacao;

    //metodo salvar fornecedor
    

     public void salvar(Fornecedor fornecedor) {
        sessao = HibernateUtil.getSessionFactory().openSession();
        transacao = sessao.beginTransaction();
        sessao.save(fornecedor);
        transacao.commit();
        sessao.close();
    }
    public void alterar(Fornecedor fornecedor) {
        sessao = HibernateUtil.getSessionFactory().openSession();
        transacao = sessao.beginTransaction();
        sessao.update(fornecedor);
        transacao.commit();
        sessao.close();
    }

    public void excluir(Fornecedor fornecedor) {
        sessao = HibernateUtil.getSessionFactory().openSession();
        transacao = sessao.beginTransaction();
        sessao.delete(fornecedor);
        transacao.commit();
        sessao.close();
    }

    public Fornecedor pesquisaCNPJ(String cnpj) {
        sessao = HibernateUtil.getSessionFactory().openSession();
        transacao = sessao.beginTransaction();
        Fornecedor fornecedor
                = (Fornecedor) sessao.createCriteria(Fornecedor.class).add(Restrictions.eq("CNPJ", cnpj)).uniqueResult();
        return fornecedor;
    }

    

    /*  public Fornecedor pesquisarCampo(String campo, Object valor) {
     Fornecedor f = null;
     try {
     sessao = HibernateUtil.getSessionFactory()
     .openSession();
     f = (Fornecedor) sessao.createCriteria(Fornecedor.class).
     add(Restrictions.eq(campo, valor)).uniqueResult();

     } catch (Exception e) {
     System.out.println("erro");
     } finally {
     sessao.close();
     }
     return f;
     }*/
    public List<Fornecedor> pesquisarNome(String nome) {
        sessao = HibernateUtil.getSessionFactory().openSession();
        transacao = sessao.beginTransaction();
        Criteria criteria = sessao.createCriteria(Fornecedor.class);
        criteria.add(Restrictions.like("Razao", nome, MatchMode.ANYWHERE));
        criteria.addOrder(Order.asc("Razao"));
        List<Fornecedor> fornecedor = criteria.list();
        return fornecedor;
    }

    public List<Fornecedor> listar() {
        sessao = HibernateUtil.getSessionFactory()
                .openSession();
        transacao = sessao.beginTransaction();
        Criteria criteria = sessao.createCriteria(Fornecedor.class);
        List<Fornecedor> fornecedores = criteria.list();
        return fornecedores;
    }
    public Fornecedor pesquisacodigo(int Codigo) {
        sessao = HibernateUtil.getSessionFactory().openSession();
        transacao = sessao.beginTransaction();

        Fornecedor fornecedores
                = (Fornecedor) sessao.createCriteria(Fornecedor.class).
                add(Restrictions.eq("Codigo", Codigo)).
                uniqueResult();
        sessao.close();
        return fornecedores;

    }
}
